home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / mail / Mutt089src.lha / Mutt-0.89i-AMIGA / src / getdomain.c < prev    next >
C/C++ Source or Header  |  1998-01-28  |  927b  |  56 lines

  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4.  
  5. #include "mutt.h"
  6. #include "protos.h"
  7.  
  8. #ifndef STDC_HEADERS
  9. int fclose ();
  10. #endif
  11.  
  12. /* poor man's version of getdomainname() for systems where it does not return
  13.  * return the DNS domain, but the NIS domain.
  14.  */
  15.  
  16. int getdnsdomainname (char *s, size_t l)
  17. {
  18.   FILE *f;
  19.   char tmp[1024];
  20.   char *p = NULL;
  21.  
  22.   if ((f = fopen ("/etc/resolv.conf", "r")) == NULL) return (-1);
  23.  
  24.   tmp[sizeof (tmp) - 1] = 0;
  25.  
  26.   l--; /* save room for the terminal \0 */
  27.  
  28.   while (fgets (tmp, sizeof (tmp) - 1, f) != NULL)
  29.   {
  30.     p = tmp;
  31.     while (ISSPACE (*p)) p++;
  32.     if (strncmp ("domain", p, 6) == 0 || strncmp ("search", p, 6) == 0)
  33.     {
  34.       p += 6;
  35.       while (ISSPACE (*p)) p++;
  36.  
  37.       if (*p)
  38.       {
  39.     while (*p && !ISSPACE (*p) && l > 0)
  40.     {
  41.       *s++ = *p++;
  42.       l--;
  43.     }
  44.     if (*(s-1) == '.') s--;
  45.     *s = 0;
  46.  
  47.     fclose (f);
  48.     return (0);
  49.       }
  50.     }
  51.   }
  52.  
  53.   fclose (f);
  54.   return (-1);
  55. }
  56.